package com.zb.service;

import com.zb.entity.AccounLoginInfo;
import com.zb.entity.SelectEmpVo;
import com.zb.entity.SelectVo;
import com.zb.result.PageUtil;
import com.zb.view.ViewNetworkEmpDetail;
import com.zb.vo.NetworkEmpListVo;
import com.zb.vo.NetworkEmpSelectVo;

import java.util.List;

/**
 * @Author WEN
 * @Date 2023/10/19 0019
 **/
public interface ViewNetworkEmpDetailService {
    /**
     * 根据账号名称 & 账号查询服务商ID
     * @param custAccId 商家ID
     * @param userName 账号名称
     * @param userPhone 账号
     * @return
     */
    List<Long> getNetworkId(Long custAccId, String userName, String userPhone);

    /**
     * 根据服务商ID获取服务服务商负责人
     * @param networkIds 服务商ID
     * @return
     */
    List<ViewNetworkEmpDetail> getManagerByNetworkIds(List<Long> networkIds);

    /**
     * 获取服务人员列表
     * @param custAccId 商家ID
     * @param selectVo 查询对象
     * @return
     */
    List<NetworkEmpListVo> getNetworkEmpList(Long custAccId, NetworkEmpSelectVo selectVo);

    /**
     * 获取服务人员列表总记录数
     * @param custAccId 商家ID
     * @param selectVo 查询对象
     * @return
     */
    long getNetworkEmpListCount(Long custAccId, NetworkEmpSelectVo selectVo);

    /**
     * 获取服务商详情之服务商人员列表
     * @param networkId 服务商ID
     * @param pageUtil
     * @return
     */
    List<ViewNetworkEmpDetail> getNetworkDetailEmpList(Long networkId, PageUtil pageUtil);

    /**
     * 获取服务商详情之服务商人员列表总记录数
     * @param networkId 服务商ID
     * @return
     */
    long getNetworkDetailEmpListCount(Long networkId);

    /**
     * 根据服务商ID获取服务商负责人
     * @param networkId 服务商ID
     * @return
     */
    ViewNetworkEmpDetail getManagerByNetworkId(Long networkId);

    /**
     * 根据服务商ID & 服务商人员ID查询关联服务人员信息
     * @param networkId 服务商ID
     * @param networkEmpId 服务商人员ID
     * @return
     */
    ViewNetworkEmpDetail getByNetworkIdAndNetworkEmpId(Long networkId, Long networkEmpId);

    /**
     * 获取服务商人员下拉数据
     * @param networkId 服务商ID
     * @param selectVo 查询条件
     * @return
     */
    List<ViewNetworkEmpDetail> getNetworkEmpPageSelect(Long networkId, SelectVo selectVo);

    /**
     * 获取服务商人员下拉数据总记录数
     * @param networkId 服务商ID
     * @param selectVo 查询条件
     * @return
     */
    long getNetworkEmpPageSelectCount(Long networkId, SelectVo selectVo);

    /**
     * 根据账号ID获取账号所属信息
     * @param accountId 账号ID
     * @return
     */
    List<ViewNetworkEmpDetail> getByAccountId(Long accountId);

    /**
     * 根据服务人员ID获取工程师所属信息
     * @param networkEmpIds 服务人员ID
     * @return
     */
    List<ViewNetworkEmpDetail> getByNetworkEmpIds(List<Long> networkEmpIds);

    /**
     * 根据商家ID获取服务商人员数据
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    List<ViewNetworkEmpDetail> getNetworkEmpAddressPageSelect(Long custAccId, SelectVo selectVo);

    /**
     * 根据商家ID获取服务商人员数据总记录数
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    long getNetworkEmpAddressPageSelectCount(Long custAccId, SelectVo selectVo);

    /**
     * 根据商家ID获取服务人员
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    List<ViewNetworkEmpDetail> getNetworkEmpSelect(Long custAccId, SelectVo selectVo);

    /**
     * 根据商家ID获取服务人员总记录数
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    long getNetworkEmpSelectCount(Long custAccId, SelectVo selectVo);

    /**
     * 根据服务商ID获取所有工程师
     * @param networkIds 服务商ID
     * @return
     */
    List<ViewNetworkEmpDetail> getByNetworkIds(List<Long> networkIds);
}
